<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue中的组件</title>
    <!-- 引用vue.js库 -->
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
<body>
    <!-- 
        Vue中组件的概念：组件是可以重用的(例如:Servlet就是一个组件)，组件可以有多个，多个组件之间是可以传递数据的。
                        在Vue的项目中，你可以将一个页面看成就是一个组件
        Vue中的组件有三种
            1. 全局组件
                如何使用全局组件
                    1.1 创建一个组件的构造器 Vue.extend()
                    1.2 Vue.component()注册一个组件
                    1.3 要将组件挂载到Vue的对象中
            2. 局部组件
                如果不需要全局注册，或者是让组件使用在其它组件内，可以用选项对象的components属性实现局部注册。 
                因此我们可以将上面的全局组件改为局部组件。
            3. 模板组件(常用)
     -->
    <div id="app">
        <my-aaa></my-aaa>
    </div>
    <template id="aaa">
        <div>
            <h1>这是一个组件模板</h1>
            <ul>
                <li v-for="val in arr">
                    {{val}}
                </li>
            </ul>
        </div>
    </template>
    <script>
       //要将组件挂载到Vue的对象中
       var demo = new Vue({
        el: '#app',
        // 局部组件
        components:{
            "my-aaa": {
                //数据部分
                data() {
                    return {
                        msg:"hello vue",
                        arr:["aaa","bbb","ccc"]
                    }
                },
                methods: {
                    //组件中所要触发的事件
                    change() {
                        this.msg = "changed"
                    }
                },
                template:'#aaa'
            }
        }
       })

    </script>

    
</body>
</html>